<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <script src="../react18/react.development.js"></script>
  <script src="../react18/react-dom.development.js"></script>
  <script src="../react18/babel.min.js"></script>
</head>

<body>
  <button id="btn">修改虚拟DOM</button>
  <div id="app"></div>
  <script type="text/babel">
    // 类式组件中加一个state属性
    class App extends React.Component{
        // 实例上的方法
        state = {
            content :'1111',
            isHot:true
        }

        render(){
            //解构赋值拿到state的属性值，this指向实例，只有实例可以用state
            const {content,isHot} = this.state

            return(
                <div>
                <h1>{content}</h1>    
                <p>今天天气{!isHot? '热':'冷'}</p>
                </div>
            )
        }
    }

        const root = ReactDOM.createRoot(document.getElementById('app'));
        root.render(<App />)

         /* 
        当虚拟DOM中使用了某一个变量,修改变量 并重新渲染虚拟DOM,每没有效果

          - vDOM不可变,只能重新生成新的vDOM,然后重新渲染
          - 变量改变了,并没有生成新的虚拟DOM,当前肯定没有效果
          - 组件实例有一个state属性,当state属性发生改变的时候,组件会重新执行render并重新渲染
      */
        const oBtn = document.getElementById('btn');
        oBtn.onclick  = function(){
            content = '22222'
            root.render(vDOM)
        }
    
    

  </script>
</body>

</html>